package com.wtwd.campus.jdzc.dao;

import com.wtwd.campus.entity.LocationData;
import com.wtwd.campus.entity.LocationDataVo;
import com.wtwd.campus.vcom.entity.VcomLocationData;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface JdbcLocationMapper {
    //获取一个班级或者单个学生的定位信息
    List<Map<String,Object>> getClassesLocationList(@Param("classId") Integer classId, @Param("imei") String imei, @Param("orgCode") String orgCode);
    //单个设备轨迹查询
    List<Map<String,Object>> getDeviceTrack(@Param("key") String key, @Param("minTime") Long minTime, @Param("maxTime") Long maxTime, @Param("orgCode") String orgCode);
    //新增一笔定位数据
    Integer addLocationData(@Param("data") LocationData data);
    //获取设备最新的一笔定位数据
    LocationData getLatestLocationData(Integer deviceId);

    /**
     * 根据imei查询设备最后一条定位
     * @param imei 设备imei
     * @return
     */
    LocationDataVo getDeviceLastLocationDataByImei(String imei);

    /**
     * 查询设备时间段内的运动轨迹
     * @param imei 设备Imei
     * @param beginTime 开始时间
     * @param endTime 结束时间
     * @return
     */
    List<LocationDataVo> getDeviceOrbit(@Param("imei") String imei, @Param("beginTime") Long beginTime, @Param("endTime") Long endTime);

    /**
     * 根据设备id设备某天的轨迹信息
     * @param deviceId
     * @param time
     * @return
     */
    List<Map<String,Object>> getDeviceTrackByDeviceId(@Param("deviceId") Integer deviceId, @Param("minTime") Long time, @Param("maxTime") Long maxTime);

    /**
     * 根据设备id设备某天的轨迹信息微信
     * @param deviceId
     * @param time
     * @return
     */
    List<Map<String,Object>> getDeviceTrackByDeviceIdWx(@Param("deviceId") Integer deviceId, @Param("minTime") Long time, @Param("maxTime") Long maxTime);

    /**
     * Vcom获取设备最新的一笔定位数据
     * @param deviceId
     * @return
     */
    VcomLocationData getVcomLatestLocationData(@Param("deviceId") Integer deviceId);

    /**
     * 根据设备id设备某天的轨迹信息威科姆
     * @param deviceId
     * @param time
     * @return
     */
    List<Map<String,Object>> getDeviceTrackByDeviceIdVcom(@Param("deviceId") Integer deviceId, @Param("minTime") Long time, @Param("maxTime") Long maxTime);

}
